/*
 * 问题：兔子繁殖问题
 * 描述：一对兔子从出生后第3个月起每个月都生一对兔子，
 *       小兔子长到第3个月后每个月又生一对兔子。
 *       假设所有兔子都不死，问第n个月有多少对兔子？
 * 规律：符合斐波那契数列：F(n) = F(n-1) + F(n-2)
 *       其中：F(0)=1（第0个月，初始1对），F(1)=1（第1个月，仍1对）
 */

#include <stdio.h>

int main() {
    int n;  // 存储输入的月份数
    // 读取用户输入的月份数n（如n=5表示计算第5个月的兔子对数）
    scanf("%d", &n);

    // 初始化斐波那契数列的前两项：
    long long f0 = 1;  // F(0) = 1（第0个月的兔子对数）
    long long f1 = 1;  // F(1) = 1（第1个月的兔子对数）
    long long fn;      // 用于存储第n个月的兔子对数

    // 特殊情况处理：第0个月和第1个月都只有1对兔子
    if (n == 0 || n == 1) {
        printf("1\n");
        return 0;  // 直接输出结果并结束程序
    }

    // 迭代计算第n个斐波那契数（从第2个月开始）
    // 原理：每个月的兔子对数 = 上个月的兔子对数 + 上上个月的兔子对数
    for (int i = 2; i <= n; ++i) {
        fn = f0 + f1;  // 当前月 = 前两月之和
        f0 = f1;       // 更新前两月的值（后移一位）
        f1 = fn;
    }

    // 输出第n个月的兔子对数
    // 使用%lld格式符，因为n较大时结果可能超过int范围
    printf("%lld\n", fn);

    return 0;
}
    